home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / cmln0986.arc / HEADER.MOD < prev    next >
Text File  |  1986-06-18  |  4KB  |  97 lines

  1. const
  2.     ALNG =  10;      (* NO. OF SIGNIFICANT CHARS IN IDENTIFIERS *)
  3.     AMAX =  30;      (* SIZE OF array-TABLE   *)
  4.     BMAX =  20;      (* SIZE OF BLOCK-TABLE   *)
  5.     C2MAX = 20;      (* SIZE OF REAL CONSTANT TABLE      *)
  6.     CSMAX = 30;      (* MAX NO. OF CASES      *)
  7.     CMAX = 600;      (* SIZE OF CODE          *)
  8.     ERMAX = 59;      (* MAX ERROR NO.         *)
  9.     EMAX  = 77;      (* MAX EXPONENT of REAL NUMBERS     *)
  10.     EMIN = -78;      (* MIN EXPONENT          *)
  11.     HEADER = 'Co-Pascal    December 1985    MS-DOS  ver 2.0';
  12.     KMAX = 7;        (* max No. of significant digits    *)
  13.     LLNG = 83;       (* input line length     *)
  14.     LINELENG = 132;  (* output line length    *)
  15.     LINELIMIT = 200; (* max No. of run time output lines *)
  16.     NKW = 29;        (* No. of key words      *)
  17.     NMAX = MAXINT;   (* 2**16-1               *)
  18.     LMAX = 7;        (* maximum level         *)
  19.     ORDMINCHAR = 0;  (* ORD of first char     *)
  20.     ORDMAXCHAR = 255;(* ORD of last char      *)
  21.     OMAX =  63;      (* highest order code    *)
  22.     SMAX = 400;      (* size of string-table  *)
  23.     STMAX = 1100;
  24.     STKINCR = 200;
  25.     PMAX = 4;        (* max # of concurrent processes    *)
  26.     TMAX = 100;      (* size of identifier table         *)
  27.     XMAX = MAXINT;   (* 2**16-1                          *)
  28.  
  29. type INDEX  = -XMAX .. +XMAX;
  30.      ALFA   = array[ 1..ALNG ] of char;
  31.      FNAME  = string[10];  (* [8] name + [2] drive  *)
  32.      OBJECT = ( KONSTANT, VARIABLE, TYPE1, PROZEDURE, FUNKTION    );
  33.      TYPES  = ( NOTYP, INTS, REALS, BOOLS, CHARS, ARRAYS, RECORDS );
  34.      CHTP   = ( LETTER, LOWCASE, NUMBER, SPECIAL, ILLEGAL         );
  35.      ITEM   = record
  36.                 TYP: TYPES;
  37.                 REF: INDEX;
  38.               end;
  39.      ORDER  = record
  40.                 F: -OMAX..+OMAX;
  41.                 X: -LMAX..+LMAX;
  42.                 Y: -NMAX..+NMAX;
  43.               end;
  44.  
  45.      TYPSET = SET of TYPES;
  46.  
  47. var  DATA,
  48.      SOURCE    :       TEXT;
  49.      SFILE,
  50.      DFILE     :      FNAME;  (* source & data file DISK name            *)
  51.      CH        :       CHAR;  (* previous  char read from source program *)
  52.      STANTYPS  :     TYPSET;
  53.      PROGNAME  :       ALFA;
  54.      CmdLine   : string[30];  (* CP/M : absolute $80 *)
  55.      SS        : array[1..25] of char;  (* used for P_CODE_IO *)
  56.      m, n      :    integer;
  57.      option    :       char;
  58.      DEBUG     :    boolean;  (* run-time program info on/off flag  *)
  59.  
  60. (*
  61.    ===============
  62.    compiler tables  - (Global) used by INTERPRT and COMPILE
  63.    ===============
  64. *)
  65.  
  66.     TAB:     array [0 .. TMAX] of record    (* identifier table *)
  67.                NAME  : ALFA;
  68.                LINK  : INDEX;
  69.                OBJ   : OBJECT;
  70.                TYP   : TYPES;
  71.                REF   : INDEX;
  72.                NORMAL: BOOLEAN;
  73.                LEV   : 0 .. LMAX;
  74.                ADR   : INTEGER;
  75.              end;
  76.  
  77.     ATAB:    array [1 .. AMAX] of record     (* array-table *)
  78.                INXTYP, ELTYP: TYPES;
  79.                ELREF, LOW, HIGH, ELSIZE, SIZE: INDEX;
  80.              end;
  81.  
  82.     BTAB:    array [ 1..BMAX ] of record     (* block-table  *)
  83.                LAST,
  84.                LASTPAR,
  85.                PSIZE,
  86.                VSIZE :   INDEX;
  87.              end;
  88.  
  89.     STAB   : array [ 0.. SMAX] of CHAR;  (* string table *)
  90.     CODE   : array [ 0.. CMAX] of ORDER;
  91.     RCONST : array [ 1..C2MAX] of  REAL;
  92.     B      : integer;   (* ---> index to BTAB,   *)
  93.  
  94.     IFLAG,                (* INPUT  found in program head *)
  95.     OFLAG,                (* OUTPUT found in program head *)
  96.     DFLAG  : BOOLEAN;     (* DATA   found in program head *)
  97.